#ifndef LIB_GEOUTILS_NORMALIZETOOL_H
#define LIB_GEOUTILS_NORMALIZETOOL_H
#include "libGeoutils/export.h"
#include <vector>
#include <memory>

namespace geo {
namespace tool {

template<class T = float, class U = float>
class GEOUTILS_EXPORT Normalizer
{
public:
	using sptr = std::shared_ptr<Normalizer>;
	using csptr = std::shared_ptr<const Normalizer>;

	Normalizer();
	virtual ~Normalizer();

	void normalizeVector(
		const std::vector<T>& in_vec, 
		std::vector<U>& out_vec,
		U new_min = 0, 
		U new_max = 1) const;

	void limitVectorMinMax(
		const std::vector<T>& in_vec, 
		std::vector<U>& out_vec, 
		U new_min = 0,
		U new_max = 1) const;

protected:

private:

};

} // namespace tool
} // namespace geo

#endif // !LIB_GEOUTILS_NORMALIZETOOL_H
